// import http from '../utils/request';

// 导入mock数据
import { getArticles } from '../mock/articles.js';
import mockArticles from '../mock/articles.js';

// 模拟HTTP请求延迟
const delay = (ms = 300) => {
  return new Promise(resolve => setTimeout(resolve, ms));
};

export default {
	
	/**
	 * 获取文章列表（使用本地mock数据）
	 */	getArticlesList(params = {}) {
		const {
			tab = 'recommend', // 默认推荐标签
			pageNo = 1,        // 默认第一页
			pageSize = 10      // 默认每页10条
		} = params;
		
		// 模拟异步请求
		return delay().then(() => {
			return getArticles(tab, pageNo, pageSize);
		});
	},
	
	/**
	 * 获取文章详情（使用本地mock数据）
	 */	getArticleDetail(id){
		// 将字符串类型的id转换为数值类型
		const articleId = Number(id);
		// 查找所有标签下的文章
		let article = null;
		for (const key in mockArticles) {
			if (mockArticles.hasOwnProperty(key)) {
				const found = mockArticles[key].find(item => item.articleId === articleId);
				if (found) {
					article = found;
					break;
				}
			}
		}
		
		// 模拟异步请求
		return delay().then(() => {
			if (article) {
				return {
					code: 0,
					message: 'success',
					data: article
				};
			} else {
				return {
					code: -1,
					message: '文章不存在'
				};
			}
		});
	},
	
	
	/**
	 * 点赞文章（使用本地mock数据）
	 */	likeArticle(id){
		// 将字符串类型的id转换为数值类型
		const articleId = Number(id);
		// 查找并更新点赞状态
		let updated = false;
		for (const key in mockArticles) {
			if (mockArticles.hasOwnProperty(key)) {
				const article = mockArticles[key].find(item => item.articleId === articleId);
				if (article) {
					article.likeFlg = !article.likeFlg;
					article.likeCount = article.likeFlg 
						? (parseInt(article.likeCount) + 1).toString() 
						: (parseInt(article.likeCount) - 1).toString();
					updated = true;
					break;
				}
			}
		}
		
		// 模拟异步请求
		return delay().then(() => {
			if (updated) {
				return {
					code: 0,
					message: '操作成功'
				};
			} else {
				return {
					code: -1,
					message: '操作失败'
				};
			}
		});
	},
	
	/**
	 * 收藏文章（使用本地mock数据）
	 */	collectArticle(id){
		// 将字符串类型的id转换为数值类型
		const articleId = Number(id);
		// 查找并更新收藏状态
		let updated = false;
		for (const key in mockArticles) {
			if (mockArticles.hasOwnProperty(key)) {
				const article = mockArticles[key].find(item => item.articleId === articleId);
				if (article) {
					article.favoriteFlg = !article.favoriteFlg;
					article.favoriteCount = article.favoriteFlg 
						? (parseInt(article.favoriteCount) + 1).toString() 
						: (parseInt(article.favoriteCount) - 1).toString();
					updated = true;
					break;
				}
			}
		}
		
		// 模拟异步请求
		return delay().then(() => {
			if (updated) {
				return {
					code: 0,
					message: '操作成功'
				};
			} else {
				return {
					code: -1,
					message: '操作失败'
				};
			}
		});
	}
};